iT邦幫忙

2022 iThome 鐵人賽

DAY 17
2

Day 17 關於 help

一般來說,我們在使用 CLI 時,都會使用 --help-h 來查看該指令的說明,例如:

git --help

很多 Discord bot 也會提供 help 指令,來告訴使用者該 bot 的指令有哪些可以用。

如果是使用 slash command 的話,Discord 自動就會提供指令的說明,但如果是使用 message prefix 或是希望有更多的說明,就需要自己寫了。

目前的模組寫法會遇到一個問題,就是每個模組只有自己才知道自己的指令有哪些,所以如果要寫 help 指令,就需要在每個模組都寫一次。

而且可能會變成使用者輸入完 !help 後,會得到一堆不同模組的回覆,這樣的使用者體驗顯然不太好。

我在想,有沒有辦法讓每個模組都可以知道其他模組的指令呢?

例如我們在每個模組中增加 commands 的指令集,這個指令集也許可以直接使用 discord.js 的 CommandBuilder,那我們也就可以順便用它來設定 slash command 的說明了。

export class Translate extends BaseModule implements Module {
    name = "translate";
    commands = [
        new SlashCommandBuilder()
            .setName("translate")
            .setDescription("翻譯")
            .addStringOption((option) =>
                option
                    .setName("text")
                    .setDescription("要翻譯的文字")
                    .setRequired(true)
            )
            .addStringOption((option) =>
                option
                    .setName("from")
                    .setDescription("原始語言")
                    .setRequired(false)
            )
            .addStringOption((option) =>
                option
                    .setName("to")
                    .setDescription("目標語言")
                    .setRequired(false)
            ),
    ];
}

每日鐵人賽熱門 Top 10 (2022-10-02)

以 2022/10/01 20:00 ~ 2022/10/02 20:00 文章觀看數增加值排名

誤差: 1 小時

  1. +1559 [Day 1] 工具從來不是問題,知識才是力量 ! Scrum 該懂的二三事 !
    • 作者: Darwin Watterson
    • 系列:工具從來不是問題,知識才是力量 ! Microsoft 365 照樣玩 Scrum !
  2. +563 Day11 - 靜態網站與動態網站
    • 作者: rocketpencil
    • 系列:因為拖延症而沒有好好準備有系統性文章架構的我只能靠一天一筆記來贖罪
  3. +547 Day12 - HTTP & HTTPS
    • 作者: rocketpencil
    • 系列:因為拖延症而沒有好好準備有系統性文章架構的我只能靠一天一筆記來贖罪
  4. +536 Day01 - 為什麼要裝 Node.js?
    • 作者: rocketpencil
    • 系列:因為拖延症而沒有好好準備有系統性文章架構的我只能靠一天一筆記來贖罪
  5. +535 Day13 - HTTP Request & Response
    • 作者: rocketpencil
    • 系列:因為拖延症而沒有好好準備有系統性文章架構的我只能靠一天一筆記來贖罪
  6. +527 Day17 - Vue(1)
    • 作者: rocketpencil
    • 系列:因為拖延症而沒有好好準備有系統性文章架構的我只能靠一天一筆記來贖罪
  7. +522 Day08 - 把你的程式碼丟到 Github 給全世界看!
    • 作者: rocketpencil
    • 系列:因為拖延症而沒有好好準備有系統性文章架構的我只能靠一天一筆記來贖罪
  8. +522 Day15 - AJAX(1) - XMLHttpRequest
    • 作者: rocketpencil
    • 系列:因為拖延症而沒有好好準備有系統性文章架構的我只能靠一天一筆記來贖罪
  9. +519 Day09 - 你的成果上線啦!(Github Pages & Vercel)
    • 作者: rocketpencil
    • 系列:因為拖延症而沒有好好準備有系統性文章架構的我只能靠一天一筆記來贖罪
  10. +519 Day10 - 只要把程式碼丟上去就好惹,其他都交給 Github Actions
    • 作者: rocketpencil
    • 系列:因為拖延症而沒有好好準備有系統性文章架構的我只能靠一天一筆記來贖罪

上一篇
Day 16 關於 Matrics
下一篇
Day 18 I18n 模組測試
系列文
Discord Bot with TypeScript: Framework, Database, and Modules30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言